A computer pointing device, generally referred to as a mouse, is one of the most commonly used devices for computer interface. As a user moves the mouse on a surface, a motion sensing mechanism in the mouse senses the motion and moves a cursor on the computer display accordingly. There are generally two types of motion sensing mechanisms, mechanical sensing and optical sensing.
A mechanical sensing mechanism generally includes a tracking ball at the bottom of the mouse and mechanically coupled to two tracking wheels. When the mouse moves on a surface, e.g., a mouse pad or desk surface, the rolling ball rotates. The tracking wheels convert the rotation of the rolling ball into electrical signals to control the movement of a cursor on the computer display. A mechanical sensing mouse is susceptible to damage and performance deterioration in resulted from dirt accumulation and/or wear.
An optical sensing mechanism generally includes a photo emitting device, e.g., a light emitting diode and an array of photo detectors. The array of photo detectors detects the features on a surface, e.g., that of a mouse pad or a desk. As the user moves the mouse over the surface, the feature moves relative the array of photo detectors. In one approach, the photo detectors are arranged in two orthogonal linear arrays, each having the width of one pixel. A state machine compares the output signals of the photo detectors in the tow linear arrays and to sense the motion of the mouse relative the surface. This linear array approach is sensitive to the speed and pattern of mouse motion. Its performance and reliability are unsatisfactory compared with conventional mechanical sensing mechanism.
In another approach, the photo detectors are arranged in a two dimensional array. Motion sensing or tracking is achieved by calculating the correlation between a newly captured sample image and a previously captured reference image to ascertain the direction and amount of movement. Specifically, the tracking process computes nine correlation functions of the sample image with the reference image, one with the sample image at its original position and the other eight with the sample imaged shifted one pixel in eight directions. The nine pixel points form a three by three square array centered at the original pixel. This two dimensional array approaches is also sensitive to the speed and pattern of mouse motion.
An improvement of the motion tracking performance can be achieved by including twenty-five pixel points in the correlation calculation. The twenty-five pixel points include one original pixel, eight nearest neighbors and sixteen second nearest neighbors of the original pixel. They form a square array of five pixels by five pixels centered around the original pixel. The optical motion tracking with the twenty-five pixel square array correlation provides improved performance and reliability compared with the orthogonal linear array and the nine pixel motion tracking processes. However, the correlation calculation process for the twenty-five pixel square array is computational intensive. It consumes significant computational power. Therefore, its implementation is complicated and power inefficient.
Accordingly, it would be advantageous to have a reliable optical motion sensing or tracking process. It is desirable for the motion sensing process to be able to accurately tracking the motion direction and distance. It is also desirable for the motion sensing process to be fast, which is beneficial in reducing the delay and improving the performance of an optical mouse. Furthermore, it is desirable for the motion sensing process to be computational power efficient. It is of further advantage if an device, e.g., an optical computer pointing device, implanting the optical sensing process is simple, power efficient, and inexpensive.